package com.tmpt.controller.action;

import com.opensymphony.xwork2.ActionSupport;
import com.tmpt.beans.Category3;
import com.tmpt.beans.GoodsCategoryLink;
import com.tmpt.dto.GoodsInfoDto;
import com.tmpt.dto.Result;
import com.tmpt.service.GoodsInfoService;
import lombok.Getter;
import lombok.Setter;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;

@Getter
@Setter
@Controller
@Scope("prototype")
public class ProductAction extends ActionSupport {
	private Logger log = Logger.getLogger(this.getClass());

	private String result;
	private int category3Id;
	private String goodsName;
	private String goodsKeys;
	private String goodsStatus;
	private String goodsDescript;
	private Date validDate;
	private BigDecimal goodsPrice;
	private String unit;
	private BigDecimal weight;
	private long goodsInfoId;


	@Resource
	private GoodsInfoService goodsInfoService;
	 
	public String addBasic(){
		try{
			//System.out.println("category3Id1:"+category3Id);
			if(this.category3Id == 0)
			{
				this.result = "未选择三级类别";
				return "productAdd1";
			}
			GoodsInfoDto goodsInfoDto = new GoodsInfoDto();
			Category3 category3 = new Category3();
			category3.setId(category3Id);
			GoodsCategoryLink link = new GoodsCategoryLink();
			link.setCategory3(category3);
			List<GoodsCategoryLink> list = new ArrayList<GoodsCategoryLink>();
			list.add(link);
			goodsInfoDto.setGoodsCategoryLinks(list);
			goodsInfoDto.setGoodsName(goodsName);
			goodsInfoDto.setGoodsKeys(goodsKeys);
			goodsInfoDto.setGoodsStatus(goodsStatus);
			goodsInfoDto.setGoodsDescript(goodsDescript);
			//goodsInfoDto.setMchntId(mchntId);
			goodsInfoDto.setValidDate(validDate);
			goodsInfoDto.setGoodsPrice(goodsPrice);
			goodsInfoDto.setUnit(unit);
			goodsInfoDto.setWeight(weight);

			Result r = goodsInfoService.addGoodsInfo(goodsInfoDto);
			
			if(!r.isSuccess()){
				this.result = r.getContent();
				return "productAdd1";
			}
			
			this.result = "添加成功";
			this.goodsInfoId = Long.parseLong(r.getRemark());
			return "productAdd1"; 
			
		} catch (Exception e) {
			e.printStackTrace();
			this.result = "操作失败："+e.getLocalizedMessage();
			return "productAdd1";
		}
	}
	
//	public String addProperty(){
//		try{
//			HttpServletRequest request = ServletActionContext.getRequest();
//			List<Map<String, Integer>> productPropertyInnerIdList = new ArrayList<Map<String,Integer>>();
//
//			if(typeIdCheckbox == null){
//				this.result = "操作失败：未提交任何数据";
//				return "productAdd2";
//			}
//
//			String[] typeIdArr = typeIdCheckbox.split(", ");
//			for(int i=0;i<typeIdArr.length;i++){
//				String typeId = typeIdArr[i];
//				String valueId = request.getParameter("radio_"+typeId);
//				if(typeId==null || valueId==null){
//					this.result = "操作失败：提交的数据不完整";
//					return "productAdd2";
//				}
//
//				Map<String, Integer> map = new HashMap<String, Integer>();
//				map.put("typeId", Integer.valueOf(typeId));
//				map.put("valueId", Integer.valueOf(valueId));
//				productPropertyInnerIdList.add(map);
//				map = null;
//			}
//
//			Result r = productService.addProductProperty(productPropertyInnerIdList, productId,oprDtoBack);
//			this.result = r.getContent();
//			return "productAdd2";
//
//		}catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//			return "productAdd2";
//		}
//
//	}
//
//	public String addPicture(){
//		if(productId==0){
//			this.result = "无商品信息";
//			return "productAdd4";
//		}
//		if(pictureManagerId==0){
//			this.result = "数据不完整";
//			return "productAdd4";
//		}
//		try {
//			Result result = productService.addPicture(pictureManagerId, isDefaultPic, productId, oprDtoBack);
//			this.result = result.getContent();
//		} catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//		}
//		return "productAdd4";
//	}
//
//	public String editDetail(){
//		try{
//			ProductDetailDto pdDto = new ProductDetailDto();
//			pdDto.setProductDetailId(this.productDetailId);
//			pdDto.setTitle(this.title);
//			pdDto.setDescription(this.description);
//			Result r = productService.editProductDetail(pdDto, oprDtoBack);
//			pdDto = null;
//
//			this.result = r.getContent();
//
//			return "productAdd3";
//		}catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//			return "productAdd3";
//		}
//	}
//
//	public String editProductBasic(){
//		if(productId==0){
//			this.result = "操作失败：未加载商品";
//			return "productAdd1";
//		}
//		try {
//			ProductDto productDto = new ProductDto();
//			productDto.setProductId(productId);
//			productDto.setCategory3Id(category3Id);
//			productDto.setProductName(productName);
//			productDto.setProductNameShow(productNameShow);
//			productDto.setProductNameShowAdd(productNameShowAdd);
//			productDto.setMarketPriceYuan(marketPriceYuan);
//			productDto.setAmountStore(amountStore);
//			productDto.setAmountAvailable(amountStore);
//			productDto.setRemark1(remark1);
//			productDto.setLastChangeMan("zhang3");
//			productDto.setStatus(status);
//			productDto.setStoreAddress(addrStr);
//			productDto.setIsRealPrice(isRealPrice);
//			productDto.setInPriceYuan(this.inPriceYuan);
//			productDto.setProductPriceYuan(this.productPriceYuan);
//
//			Result r = productService.editProductBasic(productDto, oprDtoBack);
//			this.result = r.getContent();
//
//			return "productAdd1";
//		} catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//		}
//		return "productAdd1";
//	}
//	public String editProductPic()
//	{
//		try {
//			Map<String, Object> productPicMap = new HashMap<String, Object>();
//			productPicMap.put("productPicId", this.productPicId);
//			productPicMap.put("isDefault", this.isDefaultPic);
//			productPicMap.put("pictureManagerId", this.pictureManagerId);
//
//			Result result = productService.editProductPictureById(productPicMap, oprDtoBack);
//			this.result = result.getContent();
//		} catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//		}
//		return "productAdd4";
//	}
//
//	public String deleteDetail(){
//		try{
//			Result r = productService.deleteProductDetail(productDetailId, oprDtoBack);
//			this.result = r.getContent();
//			return "productAdd3";
//		}catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//			return "productAdd3";
//		}
//	}
//
//	public String deleteProductSon(){
//		try{
//			//System.out.println("deleteProductSon1");
//			if(productSonId <1 )
//			{
//				this.result = "要删除的信息不存在";
//				return "productAdd1_2";
//			}
//			//System.out.println("deleteProductSon2");
//			Result r = productStoreService.deleteProductSon(productSonId, oprDtoBack);
//			this.result = r.getContent();
//			//System.out.println("deleteProductSon3");
//			return "productAdd1_2";
//		}catch (Exception e) {
//			e.printStackTrace();
//			this.result = "操作失败:可以要删除的信息已被订购，无法删除";
//			return "productAdd1_2";
//		}
//
//	}
//
//	public String deleteProperty(){
//		try{
//			Result r = productService.deleteProductProperty(this.productPropertyId, oprDtoBack);
//			this.result = r.getContent();
//			return "productAdd2";
//		}catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//			return "productAdd2";
//		}
//	}
//
//	public String deleteProductPic(){
//		try{
//			Result r = productService.deletePicture(this.productPicId, oprDtoBack);
//			this.result = r.getContent();
//		}catch (Exception e) {
//			e.printStackTrace();
//			this.result = e.getLocalizedMessage();
//		}
//		return "productAdd4";
//	}
//
//	// 删除收藏商品
//	public String deleteProductCollected(){
//		//System.out.println("productId23213  "+this.productId);
//		Result result = new Result();
//		try {
//			//System.out.println("productId"+this.productId);
//			//get customerId from session
//			CustomerDto customerDto = WebUtils.getCustomerDto(WebUtils.getRequest());
//			if(customerDto==null){
//				this.result = "您还未登录";
//				return "productCollected";
//			}
//			int customerId = customerDto.getId();
//			if(this.productId==0 || customerId==0){
//				this.result = "信息不完整";
//				return "productCollected";
//			}
//
//			result = productService.delProductCollected(productId, customerId);
//			//System.out.println("productId1");
//    		this.result = result.getContent();
//    		if(!result.isSuccess())
//    		{
//    			return "productCollected";
//    		}
//		} catch (Exception e) {
//			e.printStackTrace();
//			this.result = "操作失败";
//    		return "productCollected";
//		}
//
//		return "productCollected";
//	}
//
//    /**
//	 * 分页查询商品列表
//	 * @param paramMap
//	 * @return
//	 */
//	public String queryProductBySearch(){
//		HttpServletResponse response = ServletActionContext.getResponse();
//		Search search = new Search();
//		search.setPage(page-1);
//		search.setMaxResults(rows);
//
//		if("desc".equals(sortOrder) && sortColumn!=null){
//			search.addSort(sortColumn, true);
//		}else if("asc".equals(sortOrder) && sortColumn!=null){
//			search.addSort(sortColumn, false);
//		}else{
//			search.addSort("productId", false);
//		}
//		search.addFilterEqual("productNum", productNum);
//		search.addFilterEqual("productName", productName);
//		search.addFilterGreaterOrEqual("recordDate", DateTool.string2Date(recordDateStart, "yyyy-MM-dd"));
//		search.addFilterLessOrEqual("recordDate", DateTool.string2DateEnd(recordDateEnd, "yyyy-MM-dd"));
//
//		if(JsonPaginationUtils.checkDateResponseWriter(recordDateStart, recordDateEnd, response)){
//			return "jsonResult";
//		}
//
//		PaginationDto<ProductDto> pagination = productService.queryProductPaginationBySearch(search);
//
//		this.result = JsonPaginationUtils.paginationToJson(pagination);
//
//		JsonPaginationUtils.responseWriter(response, this.result);
//
//		//System.out.println(this.result);
//
//		return "jsonResult";
//	}
//
//	public String addProductDetailPriceTitle(){
//		Result result = new Result();
//
//    	if(this.productId==0 || "".equals(this.title)){
//        	result.fault("数据不完整");
//        	JSONObject jo = JSONObject.fromObject(result.getResultMap());
//        	this.result = jo.toString();
//        	return "jsonResult";
//    	}
//
//    	//日志信息
//
//    	ProductDetailPriceTitleDto priceTitleDto = new ProductDetailPriceTitleDto();
//    	priceTitleDto.setIsRealPrice(this.isRealPrice);
//    	priceTitleDto.setTitle(this.title);
//    	result = productService.addProductDetailPriceTitle(priceTitleDto, productId, oprDtoBack);
//
//
//    	JSONObject jo = JSONObject.fromObject(priceTitleDto);
//    	jo.putAll(result.getResultMap());
//    	this.result = jo.toString();
//    	//System.out.println(this.result);
//
//    	return "jsonResult";
//
//	}
//
//
//	public String addProductDetailPriceValue(){
//		try {
//
//			Result result = new Result();
//
//	    	//日志信息
//
//	    	if(this.priceTitleId==0 || "".equals(this.description) || "".equals(this.priceYuan)){
//	        	result.fault("数据不完整");
//	        	JSONObject jo = JSONObject.fromObject(result.getResultMap());
//	        	this.result = jo.toString();
//	        	return "jsonResult";
//	    	}
//
//	    	ProductDetailPriceValueDto priceValueDto = new ProductDetailPriceValueDto();
//	    	priceValueDto.setDescription(this.description);
//	    	priceValueDto.setPriceYuan(this.priceYuan);
//	    	priceValueDto.setAmountStore(this.amountStore);
//	    	result = productService.addProductDetailPriceValue(priceValueDto, this.priceTitleId, oprDtoBack);
//
//
//	    	JSONObject jo = JSONObject.fromObject(priceValueDto);
//	    	jo.putAll(result.getResultMap());
//	    	this.result = jo.toString();
//
//
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//    	return "jsonResult";
//	}
//
//	public String queryPriceValueList(){
//		if(priceTitleId==0){
//			return "jsonResult";
//		}
//		try {
//			Search search = new Search();
//			search.addFilterEqual("productDetailPriceTitle.id", priceTitleId);
//			List<ProductDetailPriceValueDto> dtoList =
//				productService.queryProductDetailPriceValue(search);
//			//System.out.println("size:"+dtoList.size());
//			JSONArray jsonArray1 = JSONArray.fromObject(dtoList);
//    		this.result = jsonArray1.toString();
//    		//System.out.println(this.result);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//
//		return "jsonResult";
//	}
	
}
